
/*------------------------------------------------------------------*/

/*------------------------------------------------------------------*/
#ifndef		__PARTAB_H
#define		__PARTAB_H
#include "stdint.h"
#include "appdefine.h"

#ifdef   _PAR_TAB_DEFINE_
#define  MY_EXT
#else
#define  MY_EXT  extern
#endif  




#define  PAR_VISION_ID        0x5A5C



#define SEG_MAX                         10






#define PAR_POS_VID                     0
#define PAR_POS_LK                     (PAR_POS_VID+1)
#define PAR_POS_O3_YRT                 (PAR_POS_LK+1)      //O3预热时间
#define PAR_POS_O3_KPT                 (PAR_POS_O3_YRT+1)  //O3保持时间
#define PAR_POS_O3_EDT                 (PAR_POS_O3_KPT+1)  //O3结束保持时间
#define PAR_POS_O3T_P                  (PAR_POS_O3_EDT+1)  //O3温度PID
#define PAR_POS_O3T_I                  (PAR_POS_O3T_P+1)
#define PAR_POS_O3T_D                  (PAR_POS_O3T_I+1)
#define PAR_POS_O3T_AR                 (PAR_POS_O3T_D+1)
#define PAR_POS_O3T_T                  (PAR_POS_O3T_AR+1)
#define PAR_POS_O3H_P                  (PAR_POS_O3T_T+1)
#define PAR_POS_O3H_I                  (PAR_POS_O3H_P+1)  //O3湿度PID
#define PAR_POS_O3H_D                  (PAR_POS_O3H_I+1)
#define PAR_POS_O3H_AR                 (PAR_POS_O3H_D+1)
#define PAR_POS_O3H_T                  (PAR_POS_O3H_AR+1)
#define PAR_POS_O3_P                   (PAR_POS_O3H_T+1)
#define PAR_POS_O3_I                   (PAR_POS_O3_P+1)   //O3PID
#define PAR_POS_O3_D                   (PAR_POS_O3_I+1)
#define PAR_POS_O3_AR                  (PAR_POS_O3_D+1)
#define PAR_POS_O3_T                   (PAR_POS_O3_AR+1)
#define PAR_POS_RfT_P                  (PAR_POS_O3_T+1)
#define PAR_POS_RfT_I                  (PAR_POS_RfT_P+1)  //参考温度PID
#define PAR_POS_RfT_D                  (PAR_POS_RfT_I+1)
#define PAR_POS_RfT_AR                 (PAR_POS_RfT_D+1)
#define PAR_POS_RfT_T                  (PAR_POS_RfT_AR+1)
#define PAR_POS_RfH_P                  (PAR_POS_RfT_T+1)  //参考湿度PID
#define PAR_POS_RfH_I                  (PAR_POS_RfH_P+1)
#define PAR_POS_RfH_D                  (PAR_POS_RfH_I+1)
#define PAR_POS_RfH_AR                 (PAR_POS_RfH_D+1)
#define PAR_POS_RfH_T                  (PAR_POS_RfH_AR+1)
#define PAR_POS_HSP                    (PAR_POS_RfH_T+1)  //化霜间隔
#define PAR_POS_HST                    (PAR_POS_HSP+1)    //化霜时间
#define PAR_POS_AWT                    (PAR_POS_HST+1)    //补水最大时间
#define PAR_POS_AWD                    (PAR_POS_AWT+1)    //补水延时
#define PAR_POS_O3_TPB                 (PAR_POS_AWD+1)
#define PAR_POS_O3_TPK                 (PAR_POS_O3_TPB+1)
#define PAR_POS_O3_HPB                 (PAR_POS_O3_TPK+1)
#define PAR_POS_O3_HPK                 (PAR_POS_O3_HPB+1)
#define PAR_POS_O3_OPB                 (PAR_POS_O3_HPK+1)
#define PAR_POS_O3_OPK                 (PAR_POS_O3_OPB+1)
#define PAR_POS_RF_TPB                 (PAR_POS_O3_OPK+1)
#define PAR_POS_RF_TPK                 (PAR_POS_RF_TPB+1)
#define PAR_POS_RF_HPB                 (PAR_POS_RF_TPK+1)
#define PAR_POS_RF_HPK                 (PAR_POS_RF_HPB+1)
#define PAR_POS_O3_PRG                 (PAR_POS_RF_HPK+1)
#define PAR_POS_RF_PRG                 (PAR_POS_O3_PRG+1) //程序模式
#define PAR_POS_O3_AL                  (PAR_POS_RF_PRG+1)
#define PAR_POS_O3_AH                  (PAR_POS_O3_AL+1)
#define PAR_POS_T_AL                   (PAR_POS_O3_AH+1)
#define PAR_POS_T_AH                   (PAR_POS_T_AL+1)
#define PAR_POS_H_AL                   (PAR_POS_T_AH+1)
#define PAR_POS_H_AH                   (PAR_POS_H_AL+1)
#define PAR_POS_O3_CY                  (PAR_POS_H_AH+1)
#define PAR_POS_RF_CY                  (PAR_POS_O3_CY+1)
#define PAR_POS_O3_ATT                  (PAR_POS_RF_CY+1)
#define PAR_POS_O3_ATH                  (PAR_POS_O3_ATT+1)
#define PAR_POS_O3_ATO                  (PAR_POS_O3_ATH+1)
#define PAR_POS_RF_ATT                  (PAR_POS_O3_ATO+1)
#define PAR_POS_RF_ATH                  (PAR_POS_RF_ATT+1)
#define PAR_POS_O3_TCOOL                (PAR_POS_RF_ATH+1)
#define PAR_POS_RF_TCOOL                (PAR_POS_O3_TCOOL+1)
#define PAR_POS_END                    (PAR_POS_RF_TCOOL+1)

#if (PAR_POS_END != 61)
#error par pos error
#endif

MY_EXT seg_par_type SegTab_O3[SEG_MAX+5];  //O3箱
MY_EXT seg_par_type SegTab_RF[SEG_MAX+5];  //参考箱
MY_EXT sys_par_type SysPar[128];

int16_t SysParCorrect(uint16_t ParNum, int16_t ParVal);
uint8_t SysParCheck(uint16_t ParNum, int16_t ParVal);

int16_t SegParCorrect(uint16_t ParNum, int16_t ParVal);
uint8_t SegParCheck(uint16_t ParNum, int16_t ParVal);

void EepParSave(uint16_t Addr, uint16_t Data);
void EepSysParRead(void);
void EepProgParRead(void);


#define EEP_SYSPAR_BASE  0x00UL    //系统参数
#define EEP_O3PAR_BASE   0x100UL   //O3控制参数
#define EEP_RFPAR_BASE   0x200UL   //参考控制参数

#undef MY_EXT

#endif
